Javascript - Class


Javascript中的Class有兩種特性,繼承(Inheritance)和多型or多態(Polymorphism)。


*繼承(Inheritance):
建立一個'子Class',並從'父Class'繼承相關屬性,程式碼如下:

class Animal {
  constructor(name) {
    this.name = name
  }
  makeSound() {
    return 'Animal sound'
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
}

const dog = new Dog('Dino')

console.log(dog.name) // Output: 'Dino'

建立Dog class的時候,使用extends以及super()來繼承'父Class'的屬性,因此可以使用dog.name來取得'Dino'。


*多型or多態(Polymorphism):
就算'子Class'是從'父Class'繼承來的,還是可以客製化'子Class'的屬性,程式碼如下:

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
  makeSound() {
    return 'Woof!';
  }
}

const dog = new Dog('Dino')

console.log(dog.makeSound()) // Output: 'Woof!'

建立Dog class的時候,重新定義了makeSound(),同一個屬性在不同的class中有不同的實現方式,這就叫做多型。(建立新的屬性不算是多型)







你可能感興趣的文章

Scroll 相關運用 - 募資網站

Scroll 相關運用 - 募資網站

[第六週] 認識 HTML 及常用標籤 (上)

[第六週] 認識 HTML 及常用標籤 (上)

C 語言練習程式(4) -- 指標相關程式集錦(3)

C 語言練習程式(4) -- 指標相關程式集錦(3)






留言討論